package com.sinog.front.controller.biz;

import com.sinog.core.model.UserDTO;
import com.sinog.core.utilbean.Result;
import com.sinog.front.config.log.Log;
import com.sinog.front.feign.biz.SocialOrganizeInfoService;
import com.sinog.front.service.user.UserFacade;
import com.sinog.front.util.ObjectConvertUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;

/**
 * @desc 安帮工作资源管理 - 安帮社会组织信息管理 - 安帮社会组织信息管理 - SocialOrganizeInfoController
 * @author dangyf
 * @date 2020年2月14日 14点48分
 */
@RestController
public class SocialOrganizeInfoController {

    @Resource
    private SocialOrganizeInfoService socialOrganizeInfoService;
    @Autowired
    private UserFacade userService;

    /**
     * 安帮工作资源管理 - 安帮社会组织信息管理 - 安帮社会组织信息管理 - 列表
     * @param request request
     * @param searchKey searchKey
     * @param searchOrgType searchOrgType
     * @return String
     */
    @GetMapping("/azbj/shzzgl/getSocialOrgInfoList")
    public String getSocialOrgInfoList(HttpServletRequest request,
                                       @RequestParam(required = false, defaultValue = "-1") String searchKey,
                                       @RequestParam(required = false, defaultValue = "-1") String searchOrgType) {
        Integer pageIndex = Integer.valueOf(request.getParameter("pageIndex"));
        Integer pageSize = Integer.valueOf(request.getParameter("pageSize"));
        String departId = userService.getAuthentication().getDepartid();
        return socialOrganizeInfoService.getSocialOrgInfoList(searchKey,pageIndex,pageSize,searchOrgType,departId);
    }

    /**
     * 安帮工作资源管理 - 安帮社会组织信息管理 - 安帮社会组织信息管理 - （修改/新增）
     * @param request request
     * @param data data
     * @return Result
     */
    @Log(type = "新增", value = "保存安帮社会组织信息（修改/新增）")
    @PostMapping("/azbj/shzzgl/socialOrgInfoManage/save")
    public Result staffInfoManageSave(HttpServletRequest request,String data) {
        UserDTO loginUser = userService.getAuthentication();
        Map<String,String> loginUserParam = ObjectConvertUtil.userToMap(loginUser);
        return socialOrganizeInfoService.save(data,loginUserParam);
    }

    /**
     * 安帮工作资源管理 - 安帮社会组织信息管理 - 安帮社会组织信息管理 - 删除
     * @param request request
     * @param id id
     * @return Result
     */
    @Log(type = "删除", value = "删除安帮社会组织信息")
    @DeleteMapping("/azbj/shzzgl/socialOrgInfo/delete/{id}")
    public Result socialOrgInfoDel(HttpServletRequest request,@PathVariable String id) {
        return socialOrganizeInfoService.deleteOne(id);
    }
}